
/*

        GESTOR GENERAL MODIFICADO

*/
package controlador;

import conexion.conexionBD;
import conexion.DBsentencias;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

public class GestorGeneral implements DBsentencias{

    //Declaraciones
    protected conexionBD bd;
    protected GestorTabla gestorTabla;
    protected Connection conexion;


    //Constructor
    public GestorGeneral() {
        try {
            bd = new conexionBD();
            gestorTabla = new GestorTabla();
            bd.connect();
            conexion = bd.getConn();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    //Cierra la conexión
    public void cerrarConexion() {
        try {
            conexion.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void ejecutarSentencia(String arregloDatosCampos[],                  //ADC guarda un registro de n campos
              String nroConsulta){                                              //nombre de constante de DBsentencias

          try {

            PreparedStatement ps = conexion.prepareStatement(nroConsulta);

            for(int i = 0;i<arregloDatosCampos.length;i++){
                ps.setObject(i+1, arregloDatosCampos[i]);                       //desglosa para ir campo por campo
                
            }
            ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();


        }
    }
    public ResultSet devolverResultSet(String arregloDatosCampos[], String nroConsulta){

        ResultSet rs=null;
        try {

            PreparedStatement ps = conexion.prepareStatement(nroConsulta);
            for(int i = 0;i<arregloDatosCampos.length;i++){
                ps.setObject(i+1, arregloDatosCampos[i]);
            }
            rs=ps.executeQuery();

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            return rs;
        }
    }
    public ResultSet devolverResultSet(String nroConsulta){

        ResultSet rs=null;
        try {
            Statement st = conexion.createStatement();
            rs = st.executeQuery(nroConsulta);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            return rs;
        }
    }


  // MÃ©todo sobrecargado para realizar bùsquedas de los combos
       public ResultSet dameResultSet(String campo, String valorBuscado,String consulta){ //luego va a ser utilizado
        ResultSet rs = null;
        try {
            Statement s = conexion.createStatement();
              String cadena = consulta + campo + " like '" + valorBuscado + "%'";
            rs = s.executeQuery(cadena);
            return rs;

        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

}
